"""
account.py 针对主界面菜单的几个功能:查询 存款 取款 转账 流水等
"""


from util import read_userinfo

def query():
    """
        查询账户余额的功能
    """
    # 第一步:获取全局的登录用户下标记录
    from user import login_user_index
    user_list = read_userinfo()
    print(user_list[login_user_index].split(",")[2])
    from menu import main_menu
    main_menu()
    
def withdraw ():
    """
        取款功能
    """
    from user import login_user_index

    # 输入要取款的金额
    money = int(input("请输入要取款的金额:>>>"))
    # 判断要取款的金额是否合理()
    if money < 0:
        print("请输入正确的金额")
        withdraw()
    elif check_balance(login_user_index,money):
        # 取款
        print("取款{}".format(money))
        # 修改文件本质是:修改列表.再整体重新写回文件
        change_user_balane(login_user_index,money*-1)
        from menu import main_menu
        main_menu()
    else:
        # 调用存款方法
        print("余额不够取不了.先存吧!")
        deposit()
        
    
    
    # 合理的情况下修改原始数据
    
    
    
def check_balance(user_index,money):
    """
        检查余额是否足够!
    """
    user_list = read_userinfo()
    if int(user_list[user_index].split(",")[2]) < money:
        return False
    else:
        return True
    
    
def change_user_balane(user_index,money):
    """
        修改余额
    """
    # 获取所有的用户列表
    user_list = read_userinfo()
    # 从上面列表中获取指定的用户信息.因为是字符串类型 username,userpwd,balance 按照逗号分隔成列表
    userinfo = user_list[user_index].split(",")
    # 从列表中取出三个元素
    username = userinfo[0]
    userpwd = userinfo[1]
    userbalance = int(userinfo[2])
    # 更新余额元素
    userbalance += money
    # 重新拼接成字符串
    userinfo = username+","+userpwd+","+str(userbalance)+"\n"
    # 替换掉user_list中的原本内容
    user_list[user_index] = userinfo
    # 把更新后的列表重新写回文件中
    from util import userinfo_path
    with open(file = userinfo_path,mode="w",encoding="utf-8") as file:
        file.writelines(user_list)
    
    
    
def deposit():
    """
        存款
    """
    money = int(input("请输入要存款的金额"))
    if money < 0 :
        print("请输入正确的金额")
        deposit()
    else:
        from user import login_user_index
        change_user_balane(login_user_index,money)
        from menu import main_menu
        main_menu()


def transfer():
    """
        转账  
    """
    # 输入对方账号
    username = input("请输入收款方账户名称")
    # 判断账号是否存在
    from user import check_user_exists
    # 如果不存在返回值为False
    to_index = check_user_exists(username)
    if to_index:
        # 输入转账金额
        money = int(input("请输入转账金额"))
        from user import login_user_index
        if check_balance(login_user_index,money):
            change_user_balane(login_user_index,money*-1)
            change_user_balane(to_index,money)
            from menu import main_menu
            main_menu()
        else:
            print("金额不足,不可以转账,请先存款")
            deposit()
      
    else:
        print("对方账户不存在")
        transfer()
        
  
    # 判断金额合理(金额要小于或等于余额且大于0)
    # 修改账户信息(连个账户:登录账户和收款方)
    # 回到主菜单
    
    
    
